Detecting Data Races in Sequential Programs with DIOTA
نویسندگان
چکیده
In this paper we show that data races, a type of bug that generally only causes havoc in parallel programs, can also occur in sequential programs that use signal handlers. Fortunately, it turns out that adapting existing data race detectors to detect such bugs for sequential programs is straightforward. We present such a tool, and we describe the modifications that were necessary to detect data races in sequential programs. The experimental evaluation revealed a number of data races in some widely used programs.
منابع مشابه
Software instrumentation using dynamic techniques
In this paper, we describe DIOTA, a dynamic instrumentation technique. The technique correctly deals with programs that contain traditionally hard to instrument features such as data in code and code in data. The technique does not require reverse engineering, program understanding tools or heuristics about the compiler or linker used. The basic idea is that instrumented code is generated on th...
متن کاملDIOTA: Dynamic Instrumentation, Optimization and Transformation of Applications
In this paper, we describe DIOTA, a novel method for instrumenting binaries. The technique correctly deals with programs that contain traditionally hard to instrument features such as data in code and code in data. The technique does not require reverse engineering, program understanding tools or heuristics about the compiler or linker used. The basic idea is that instrumented code is generated...
متن کاملVisualizing Data Races in Concurrent Signal Handlers
Asynchronous signal handling introduces fine-grained concurrency into sequential programs making them prone to data races. Unfortunately, existing tools for detecting data races in sequential programs that use concurrent signal handlers fail to provide effective means for understanding the dynamic behavior of concurrent signal handlers involved in data races. Thus, this paper presents a visuali...
متن کاملDetecting Data Races by Analyzing Sequential Traces
One of the fundamental problems encountered when debugging a parallel pro gram is determining the potential race conditions in the program A race condition exists when multiple tasks access shared data in an unconstrained order and at least one of the accesses is a write operation The program s behavior can be unpre dictable when race conditions are present This paper describes techniques which...
متن کاملDetecting the First Races in Parallel Programs with Ordered Synchronization
Detecting races is important for debugging shared-memory parallel programs, because the races result in unintended nondeterministic executions of the programs. Previous on-they techniques to detect races in programs with inter-thread coordination such as ordered synchronization cannot guarantee that the race detected rst is not preceded by events that also participate in a race. This paper pres...
متن کامل